home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 April / EnigmA AMIGA RUN 06 (1996)(G.R. Edizioni)(IT)[!][issue 1996-04][Skylink CD V].iso / internet / others / spoolwatch.lha / SpoolWatch / Src / SpoolWatch.c < prev    next >
C/C++ Source or Header  |  1995-10-02  |  4KB  |  190 lines

  1.  
  2. /*
  3.  *    Program     SpoolWatch
  4.  *    Programmer    N.d'Alterio
  5.  *    Date        09/09/95
  6.  *
  7.  *  Synopsis:    Displays information on the contents of the news and
  8.  *        mail spool directories. With or without GUI.
  9.  *
  10.  *  Arguments:    MAILDIR\K            Location of mail spool dir (CLI)
  11.  *        NEWSDIR\K            Location of news spool dir (CLI)
  12.  *        NOGUI\S                Don't open GUI (CLI)
  13.  *        FULL\S                Prints full info (CLI)
  14.  *        LEFT\N                Left edge of window (CLI)
  15.  *        TOP\N                Top edge of window (CLI)
  16.  *
  17.  *        NEWSDIR                Location of news spool dir (WB)
  18.  *        MAILDIR                Location of mail spool dir (WB)
  19.  *        TOP                Top edge of window (WB)
  20.  *        LEFT                Left edge of window (WB)
  21.  *
  22.  *  Inputs:                    None.
  23.  *
  24.  *  Outputs:                    None.
  25.  *
  26.  *  Variables:    exit_code            Program return code.
  27.  *        exit_flag            Flag to show if early exit is needed.
  28.  *        nfi                News FullInfo struct.
  29.  *        mfi                Mail FullInfo struct.
  30.  *        swa                Program args struct.
  31.  *
  32.  *  Functions:    OpenLibrary            Opens a library (EXEC)
  33.  *        CloseLibrary            Closes a library (EXEC)
  34.  *        ProgArgsWB            Gets arguments from WB (SW)
  35.  *        ProgArgsCLI            Gets aruments for CLI (SW)
  36.  *        FullSpoolInfo            Reads full information on spooldir (SW)
  37.  *        SpoolWindow            Opens the SpoolWatch GUI (SW)
  38.  *        SpoolCLI            Prints simple spool info to stdout (SW)
  39.  *        PrintFullInfo            Prints full spool info to stdout (SW)
  40.  *        FreeProgArgs            Frees prog args struct (SW)
  41.  *        SWError                Displays error message (SW)
  42.  *        fprintf                Prints to stream (ANSI)
  43.  *        exit                Ends program (ANSI)
  44.  *
  45.  * $Id: SpoolWatch.c 2.6 1995/09/28 00:20:52 daltern Exp $
  46.  *
  47.  */
  48.  
  49. #include "SpoolWatch.h"
  50.  
  51. extern struct Library *DOSBase;
  52.  
  53. char *version = "$VER: SpoolWatch 2.8 (02.10.95) Nick d'Alterio";
  54.  
  55. int main( int argc, char *argv[] )
  56.  
  57. {
  58.  
  59.   int exit_code = 0;
  60.   int exit_flag = FALSE;
  61.  
  62.   struct SWArgs   *swa;
  63.  
  64.   struct FullInfo *nfi;
  65.   struct FullInfo *mfi;
  66.  
  67.   if ( DOSBase = OpenLibrary( "dos.library", 37 ) ) {
  68.       
  69.  
  70. /*
  71.  *  Get args corresponding to the program start method.
  72.  */
  73.  
  74.     if ( argc == 0 ) {
  75.  
  76. /*
  77.  *   Started via workbench.
  78.  */
  79.         if ( !( swa = ProgArgsWB( argv ) ) ) {
  80.             exit_code = 0;
  81.             exit_flag = TRUE;
  82.         }   /* end if ProgArgsWB */
  83.     
  84.     } else {
  85.  
  86. /*
  87.  *   Started from shell.
  88.  */
  89.  
  90.         if ( !( swa = ProgArgsCLI() ) ) {
  91.             exit_code = 0;
  92.             exit_flag = TRUE;
  93.         }   /* end if ProgArgsCli */
  94.  
  95.     }   /* end if argc */
  96.  
  97. /*
  98.  *   Build up the full info structures.
  99.  */
  100.  
  101.     if ( !exit_flag ) {
  102.  
  103.         nfi = FullSpoolInfo( swa, NEWS_TYPE );
  104.             mfi = FullSpoolInfo( swa, MAIL_TYPE );
  105.  
  106.     }   /* end if !exit_flag */
  107.  
  108. /*    
  109.  *   Use the GUI
  110.  */
  111.  
  112.     if ( !swa->nogui && !exit_flag ) {
  113.  
  114.         exit_code = SpoolWindow( swa, nfi, mfi );
  115.  
  116.     }   /* end if !nogui */
  117.  
  118. /*
  119.  *   Shell Output case.
  120.  */
  121.  
  122.     if (  swa->nogui && !exit_flag ) {
  123.  
  124.         switch ( swa->full ) { 
  125.  
  126. /*
  127.  *   Give the full information.
  128.  */
  129.             
  130.             case TRUE:
  131.     
  132.                 if ( !nfi ) {
  133.     
  134.                     fprintf( stdout, "\n News spool is empty\n\n" );
  135.  
  136.                 } else {
  137.  
  138.                     fprintf( stdout, "\nNews Spool .....\n\n" );
  139.                     PrintFullInfo( nfi );
  140.                 }   /* end if files in spool */
  141.  
  142.                 fprintf( stdout, "\n Press return to continue...\n\n" );
  143.                 getchar();
  144.  
  145.                 if ( !mfi ) {
  146.     
  147.                     fprintf( stdout, "\n Mail spool is empty\n\n" );
  148.  
  149.                 } else {
  150.  
  151.                     fprintf( stdout, "\nMail Spool .....\n\n" );
  152.                     PrintFullInfo( mfi );
  153.                 }   /* end if files in spool */
  154.  
  155.                 break;
  156.  
  157. /*
  158.  *   Just give number of files in each spool.
  159.  */
  160.  
  161.             case FALSE:
  162.  
  163.                 SpoolCLI( nfi, mfi );
  164.                 break;
  165.             
  166.         }   /* end switch full */
  167.         
  168.     }   /* end if nogui */
  169.  
  170. /*
  171.  *   Free up resources.
  172.  */
  173.      
  174.     FreeProgArgs( swa );
  175.  
  176.     CloseLibrary( DOSBase );
  177.  
  178.   }   /* end if DOSBase */
  179.  
  180.   exit( exit_code );
  181.  
  182. }   /* end program SpoolWatch */
  183.  
  184. /*========================================================================*
  185.             END PROGRAM SpoolWatch
  186.  *========================================================================*/
  187.  
  188.  
  189.  
  190.